The invention relates generally to computer and communication networks. More specifically, the invention relates to measuring the performance of such networks.
In communications technology, there is an ever-increasing demand for high-performance networks, and in particular, a demand for high-performance Internet access. This increased demand has led to the development of improved networks capable of handling larger volumes of data with smaller delays.
Communications networks, such as ATM networks or the Internet, are generally formed with a number of transmission links interconnected with switches. A transmission link is any medium through which signals are communicated and can be single or multiple twisted pairs, optical fiber, coaxial cable, radio links, or other mediums. A switch is a device with one or more input ports and one or more output ports. The switch directs bits arriving at an input port to the appropriate output port. Switching in communications is accomplished using one of two methods: circuit switching and packet switching. Only packet switching is relevant for the purposes of the present discussion.
In packet switching, the data in a data stream is divided into xe2x80x9cpackets.xe2x80x9d In addition to a portion of data, each packet carries various identifying information about the data. Such identifying information includes routing information, for instance, source and destination addresses for the data. When a packet arrives at a switch, it is stored in a buffer. The switch looks at the routing information in the packet and routes the packet to the appropriate output port. The packets are then forwarded one xe2x80x9chopxe2x80x9d (or switch) at a time, until they reach their destination.
Generally in packet switching, each packet in a particular data stream does not necessarily follow the same path to its destination as the others. Nonetheless, certain types of packet switching, e.g., ATM, do specify the path that the packets are to follow between the switches for a particular end-to-end connection. Such a predetermined path is typically referred to as a xe2x80x9cvirtual channel.xe2x80x9d
Unlike general packet switching where packets are not guaranteed to arrive in the order they were sent, when virtual channels are specified, all of the packets follow the same route along the virtual channel, thereby guaranteeing the order of arrival. These xe2x80x9cvirtual channelsxe2x80x9d have greatly enhanced the performance of networks in using resources efficiently and can usually provide a minimum xe2x80x9cquality of servicexe2x80x9d, i.e., a minimum bandwidth provided between two points, A and B.
In order to maintain this quality of service, switches monitor packets that pass through them. For instance, switches will typically count the packets they transport per port and/or virtual channel and count the number of packets that are dropped. This monitoring allows a particular switch to send messages to other switches. For instance, if a switch becomes overloaded or saturated with packets it may notify other upstream switches to slow down or stop transmission. Or this monitoring may cause a switch to take other actions. For instance, if too many packets arrive for a particular virtual channel, the switch may drop some of them in order to keep the virtual channel from usurping the transmission links from other virtual channels (and thereby deny the other virtual channels their minimum quality of service).
Yet, while this monitoring is sufficient to ensure a minimum quality of service for each virtual channel, this monitoring generally does not evaluate the actual performance or usage of a switch, a virtual channel, or the network as a whole. Hence, a network operator cannot readily determine what resources are available on a network, what resources are being wasted, or if a switch is not performing optimally. The provision of such information has generally been deemed too costly and complicated.
A system and method in accordance with the invention provide a scheme by which the performance of a network can be easily monitored. In general, an embodiment of the invention determines values related to the length of time packets are present in a node, including effective rate for a virtual channel in a node and/or delay for a virtual channel in a node. xe2x80x9cEffective ratexe2x80x9d is used herein to mean the throughput rate during the time when a given virtual channel is busy, having packets in its queue.
More specifically, some embodiments of the invention are used in a packet-switched network comprised of a plurality of nodes. In each node there is a node monitor. In one embodiment, the node monitor maintains information for each virtual channel that passes through the node. The information maintained includes the time of arrival of packets in the queue for the virtual channel. In one embodiment, such information is maintained in a linked list. The node monitor further utilizes the information maintained to determine node performance characteristics. In one embodiment, these node performance characteristics include throughput, effective rate, loss rate, delay, and occupancy for each virtual channel carried by the node.
In some embodiments, the node monitor is split into an epoch monitor and an aggregate monitor. The epoch monitor monitors the packets as described above and performs simple calculations such as counting, adding, and comparing. The aggregate monitor performs more processing-intensive calculations.
A network in accordance with one embodiment of the invention further includes a network monitor. Periodically, the network monitor receives the node performance characteristics from each node and then determines overall performance characteristics for the virtual channels in the network from end to end (from the virtual channel source to its destination). This information may then be provided in a report to a network operator or one or more users, who can then use the information to optimize the network and/or their use of the network.
Hence, in accordance with one embodiment of the invention, system performance measurements are taken in a distributed manner, e.g., low-level (in the epoch monitor), mid-level (in the aggregate monitor), and network (in the network monitor). Such a distributed performance measurement system allows network performance to be monitored and avoids interference with packet flow without taxing the resources of any one node or the network overall.